package prototype.persistence;

import prototype.persistence.hibernate.HibernateDAOFactory;

/**
 * Generated at Sun Jan 03 13:49:53 EET 2010
 *
 * @see http://www.hibernate.org/328.html
 * @author Salto-db Generator v1.0.16 / Pojos + Hibernate mapping + Generic DAO
 */

public abstract class DAOFactory {

	private static final DAOFactory HIBERNATE = new HibernateDAOFactory();

	public static final DAOFactory DEFAULT = HIBERNATE;
	
    /**
     * Factory method for instantiation of concrete factories.
     */
    public static DAOFactory instance(Class factory) {
        try {
            return (DAOFactory)factory.newInstance();
        } catch (Exception ex) {
            throw new RuntimeException("Couldn't create DAOFactory: " + factory);
        }
    }
	
	public abstract MapDAO buildMapDAO();
	
	public abstract ScenarioDAO buildScenarioDAO();
	
	public abstract GoalDAO buildGoalDAO();
	
	public abstract PositionDAO buildPositionDAO();
	
	public abstract UserDAO buildUserDAO();
	
	public abstract UserHasUnitDAO buildUserHasUnitDAO();
	
	public abstract UnitDAO buildUnitDAO();
	
}
